1. Field of the Invention
The present invention relates to computer graphics including animation.
2. Related Art
A wide variety of applications rely on computer graphics to generate images. An image is made up of an array of picture elements (pixels) and can be displayed on a display unit, such as, a monitor, screen, or cathode ray tube. Images often include graphical representations of objects. Many different types of computing devices with graphics capabilities are used to generate images. Such computing devices use graphics processing. A combination of software, firmware and/or hardware is used to implement graphics processing. For example, graphics processing including rendering can be carried out in a graphics card, graphics subsystem, graphics processor, graphics or rendering pipeline, and/or a graphics application programming interface (API) and libraries, such as OPENGL.
In computer graphics, the geometry of an object is represented by primitives. Common primitives are points, lines, and polygons such as triangles or quads. Each primitive is made up of points called vertices. Each vertex includes information relating to the object and its graphical display as an image. For example, vertex information can include, but is not limited to, vertex coordinates, texture coordinates, an alpha value, and a depth value. Vertex coordinates define the location of a respective vertex in a three-dimensional coordinate space (x,y,z), such as, an object coordinate space or a world coordinate space. In this way, vertex coordinates define the geometry of an object surface. Texture coordinates map to a texture (such as, an image in a two-dimensional texture space (s,t) or a three-dimension texture space (r,s,t)). One way this image (also called a texture) is used in graphics processing is to provide additional surface detail to the object. An alpha value is used to represent transparency information. The depth value is used to define depth information.
Increasing demands are being made upon graphics processing, particularly in the area of animation. These demands include realism, speed and cost. Realistic images are desired to be rendered at real-time, interactive rates while avoiding burdensome graphics processing or hardware requirements. One way to achieve more realism is to use complex objects. Complex objects, however, can involve a large number of primitives. For example, hundred, thousands, or millions of triangles may be needed to represent complex objects. This increases the number of calculations and other processing work required to fully render the object. This complexity is transferred to animation, which basically consists of repetitive object rendering from different camera or viewpoint directions.
Billboard image-based rendering algorithms have been used as an alternative to full rendering of objects. In such a billboard approach object data is rendered as if it were mapped or tiled on a flat plane or “billboard.” The billboard approach, however, sacrifices realism and geometry detail. Accordingly, its usefulness is limited to objects viewed from afar unless hundreds of pre-computed texture images are used exceeding the limits of texture hardware. The billboard approach also generally requires many pre-computed texture images. Further, using billboards for an animated object is unreasonable because each frame of the animation would require all the view textures needed for a static object. Not only this would result in a extremely large number of textures that would need to be stored but also would require the animation sequence to be known at the preprocessing step. Others have been using a single view direction, reducing the number of textures, but making it impossible to view the object from more than a single view direction.
One approach to accommodating these demands is to approximate geometric information by forming an object proxy. Conventional approaches to forming an object proxy, however, have been limited. For example, Buehler et al. describes use of geometric proxies based on a progressive hull technique described by Sander et al. See, Buehler et al., “Unstructured Lumigraph Rendering,” SIGGRAPH 2001, Los Angeles, Calif., August 2001 (pages 1-8); and Sander et al., “Silhouette Clipping,” SIGGRAPH 2000, New Orleans, La., July 2000 (pages 1-8). The progressive hull approach described in the Buehler and Sander articles has significant deficiencies. At the very least, the approach does not apply generally to all types of object shapes. This progressive hull approach cannot handle concave proxies, or objects that have parts close to each other or touching each other. In addition, this approach is not well suited for mixing image-based rendering (ibr) objects with regular scenes. Image based rendering, and thus animation, needs to be improved with a method and system for forming object proxies that can be used with all types of object shapes. Animation at an intermediate level of rendering quality in between full object rendering and a billboard rendering is needed.